本发明涉及一种移动组播路由优化方法,其方法是:在家乡代理上实现组播隧道合并重构组播路由优化算法,家乡代理构建和维护移动节点列表、组成员列表和转发接口列表,方法步骤如下:家乡代理初始化三个列表,家乡代理从绑定缓存获取移动节点信息生成移动节点列表,家乡代理侦听绑定更新消息并更新移动节点列表,家乡代理检测移动节点列表中是否存在具有相同转交地址前缀的移动节点,家乡代理检测是否存在到移动节点当前接入路由器的隧道,家乡代理若查找到具有相同前缀的移动节点加入到了相同的组播组,家乡代理停止移动节点和家乡网络之间的隧道上传输组播数据。本发明提高网络资源的利用率,减少移动组播方法的传输开销。1、一种移动组播路由优化方法,其特征在于:在家乡代理上实现组播 隧道合并重构组播路由优化算法,家乡代理至少需要构建和维护三个信息列 表,即移动节点列表,组成员列表和转发接口列表, 移动节点列表,家乡代理从移动IP的绑定缓存中获得移动节点信息, 以接口为索引,记录移动节点的家乡地址、转交地址、接入路由器地址信息; 组成员列表,记录加入的组播组信息,包括组地址、组播模式、组播范 围; 转发接口列表,记录各个组的转发接口信息; 组播路由优化方法主要是采用隧道合并重建算法,具体步骤如下: (1)家乡代理初始化三个列表,家乡代理从绑定缓存获取移动节点信息 生成移动节点列表,从内核获取组播报告消息并生成组成员列表和转发列 表; (2)家乡代理侦听绑定更新消息并更新移动节点列表; (3)家乡代理检测移动节点列表中是否存在具有相同转交地址前缀的移 动节点,若存在则记录该移动节点的接入路由器地址并查询转发表,若不存 在,则转到步骤2; (4)家乡代理检测是否存在到移动节点当前接入路由器的隧道,若存在 则转到步骤6;否则,查询当前的转发列表; (5)家乡代理若查找到具有相同前缀的移动节点加入到了相同的组播 组,则构建家乡代理到当前接入路由器的隧道并更新转发列表,否则转到步 骤2; (6)家乡代理停止在移动节点和家乡网络之间的隧道上传输组播数据。 2、如权利要求1所述的一种移动组播路由优化方法,其特征在于:家 乡代理建立到非移动节点当前接入路由器的隧道,通过某种代理选择方法选 出某一个接入路由器来替代当前接入路由器的功能。 技术领域 本发明涉及移动互联网的移动组播技术,特别是指一种移动组播路 由优化方法。通过在家乡代理上引入组播隧道合并重构算法优化组播路 由,提高组播路由效率。 背景技术 移动组播是基于移动IP和组播发展而来的,它能够提供移动视频会 议等重要服务。移动组播需要解决两方面的问题,一是组成员关系管理, 二是组成员移动性管理。组成员关系管理一般采用互联网组管理协议 IGMP(Internetxa0Groupxa0Managementxa0Protocol)或组播侦听发现MLD错误! 未找到引用源。协议来实现,而组成员移动性管理则需要链路层如IEEE 802.11和网络层如移动IPv6(Mobilexa0IP)错误!未找到引用源。、子网移 动NEMO(NEtworkxa0MObility)错误!未找到引用源。等的支持。但是, 它们的简单结合不能从根本上解决移动组播所面临的问题错误!未找到 引用源。。针对这一问题,出现了一些移动组播方法。这些移动组播方 法通过构建动态的组播转发路径为移动节点提供移动组播服务。 目前,文献错误!未找到引用源。提出了双向隧道BT(Bi-directio
nal Tunnel)和远程加入RS(Remotexa0Subs
cription)两种基本方法,但BT存在 着三角路由、额外封装和隧道聚合等问题,而RS存在着组播协议收敛 慢和同步丢失等问题。随后,陆续出现了一些改进方案错误!未找到引 用源。如MoM错误!未找到引用源。、RBMoM错误!未找到引用源。、 MMA错误!未找到引用源。、MMG错误!未找到引用源。等,这些 方案通过不同的算法在外地网络构建移动组播代理来改善BT和RS方法 的不足。基于MLD协议,C.Jelger等错误!未找到引用源。引入了 MLDxa0hold消息用于维护移动成员的组状态信息。当移动节点MN(Mobile Node)移到外地后,它先通过双向隧道BT(Bi-directionalxa0Tunneling) 方法获得组播数据,然后再在外地网络发起组播组加入过程。一旦MN 从外地获取组播数据,则发送MLDxa0hold消息给家乡代理HA(Home Agent),由HA保存MN的组成员状态,以便下次移动时继续转发组播 数据。 随着移动IPv6的发展,一些基于MIPv6、FMIPv6(Fastxa0MIPv6)错 误!未找到引用源。和HMIPv6(Hierarchicalxa0MIPv6)错误!未找到引用 源。的方案相继出现。FMIPv6结合二层信息预先为MN配置新转交地 址NCoA(Newxa0Care-of-Address),同时在前后两个接入路由器之间构建 隧道,减少切换丢包。HMIPv6通过在外地网络设置移动性锚点MAP (Mobilityxa0Anchorxa0Point),分担HA的部分功能来减少全局切换信令的传 输。但是,移动IPv6规范在设计之初没有考虑到对组播业务的支持。同 移动IPv4相比,它构建的隧道(端点分别是HA和MN)方便了单播业 务的传输,却增加了实现高效移动组播的难度。 基于FMIPv6,文献错误!未找到引用源。提出了M-FMIPv6(Fast Multicastxa0Protocolxa0forxa0Mobilexa0IPv6)方法,它利用FMIPv6在切换过程中建 立的前接入路由器PAR(Previousxa0Accessxa0Router)和新接入路由器NAR (Newxa0Accessxa0Router)之间的单播隧道转发组播包。当MN完成网络层切 换并收到PAR发送的MLD查询消息后,MN将通过隧道发送MLD报 告消息以获取缓存的组播数据。但由于MN只有在收到查询消息后才发 送报告消息,因此增加了的组播加入延时。为了减少加入延时,F.Xia 等错误!未找到引用源。提出了组播快速切换MFH(Multicastxa0Fast Handover)方案,通过在切换发起HI(Handoverxa0Initiate)消息中增加组播 信息选项来记录MN的组播状态信息。该信息由PAR传递给NAR,预 先在NAR建立MN的组播转发状态。当MN完成切换后,PAR将缓存 的组播数据通过隧道传给MN。该方法减少了组播加入延时,但它未能 解决隧道聚合问题。为此,Georgiosxa0A.Leoleis等错误!未找到引用源。 提出了M-FMIPv6/FTB(Fastxa0MIPv6xa0extensionsxa0forxa0multicastxa0handover supportxa0withxa0flowxa0tunnelingxa0andxa0buffering)方案,为每个组播组建立隧道。 同时,该方案在快速绑定更新FBU(Fastxa0Bindingxa0Update)中包含组播状态 信息以支持快速组播切换。针对无线局域网WLAN(Wirelessxa0LAN)环境, Sang-Seon等错误!未找到引用源。提出了快速组播切换方案,在子网 间新增组播接入点来通告子网内所有MN的MAC(Mediaxa0Accessxa0Control) 地址信息和组播组信息,在切换之前就通告邻近子网加入到组播组,减 少组播加入延时。 基于HMIPv6,Thomasxa0Schmidt等错误!未找到引用源。提出了一种 无缝移动组播切换方案,采用移动性锚点MAP传输组播数据。在MAP 域内移动时,MN只向MAP注册新位置,不改变组播转发树。在域间移 动时,构建MAP到链路转交地址LCoA(Localxa0Care-of-Address)的隧道传 输组播数据。但由于MAP到新LCoA的隧道是在MN完成二层切换和 三层切换后才创建的,因此会造成组播数据的丢失。为此,文献错误! 未找到引用源。提出了一种基于快速组播切换的分层移动组播体系结构, 通过分层移动组播管理将屏蔽节点的微移动,提高组播转发树主干的稳 定性,同时利用快速组播切换机制缩短切换时间。 从上述分析可以看出,当前的移动组播方法存在的主要问题是路由 效率问题,包括组播路由不优化,组播路由建立慢,组播数据多层封装 等,由此严重影响了移动组播的性能。 现有技术一的技术方案 带路由优化的移动组播算法MMROP错误!未找到引用源。是在远 程加入方法的基础上针对其中存在的丢包情况严重的问题进行改进,目 的在于使改进后的方案既能保持远程加入算法中使用最优路由的特点, 又最大程度上降低切换时的组播包丢失。 MMROP在远程加入算法中引入了隧道机制。移动节点发生切换时, 由旧的代理将切换时丢失的组播包补充到新的代理中,从而解决了组播 包的丢失问题。MMROP需要在家乡代理和外地代理的移动管理表格中 增加与组播有关的表项。移动节点作为组播组的接收者在移动到新的链 路以后,需要向新的外地代理发送IGMP/MLD报告消息请求加入组播 组,然后外地代理代表移动节点加入到此组播组。上述过程与远程加入 算法相同,所不同的是新的外地代理需要为该组播组建立或修改相应的 管理表现,把移动节点加入到服务列表中,并且暂存新接收的组播包到 缓存中。与此同时,移动节点需要检查新老链路中组播包的序号差。如 果老序号大于等于新的序号,则移动节点向原移动代理发送离开消息, 同时指明序号偏移量为零;否则移动节点再向原移动代理发送离开消息 的同时指明组播包的偏移量,原移动代理则通过隧道的形式向新移动代 理补充这部分组播包。 MMROP的优点是能使移动节点组播包的转发路径维持最优,同时 MMROP还解决了切换丢包问题,鲁棒性较高。另外,MMROP还具有 简单性和灵活性优点,它只需扩充移动IP协议中移动代理的功能,而无 需修改现有的组播路由协议。 现有技术一的缺点 MMROP的缺点是,以远程加入算法为基础,却没有解决该算法中 组播管理开销大、组播转发树更新频繁的问题,尤其是当新老链路中组 播包序号差别较大时,移动代理和移动节点都需要开辟加大的空间换成 组播包,这对资源相对受限的移动节点来说是不合适的。当多个移动节 点同时发生移动时,在新老移动代理之间还会出现隧道聚集问题。 现有技术二的技术方案 基于范围的移动组播协议RBMoM,其中心思想在于寻求最短转发 路由和频繁重建组播树之间的折中,使得组播包总是能够以接近最优的 路径进行转发,并且无需为维护组播树花费过多的开销。RBMoM为每 个移动节点选择一个组播家乡代理MHA(Multicastxa0Homexa0Agent),由 它负责通过隧道把组播包转发给移动节点的外地代理。每个移动节点只 能有一个MHA。RBMoM将服务返回的概念引入到MHA中,MHA只 能为那些在其服务范围内的外地链路中的移动节点服务,一旦移动节点 离开了这个服务范围就需要重新选择MHA,即继续MHA切换。因此, MHA会随着移动节点位置的变化而动态变化。最初的时候,MHA就是 家乡代理。移动主机的MHA是根据移动主机的位置动态变化的,而移 动主机的家乡代理是固定不变的,MHA为移动节点提供组播分组传输服 务,家乡代理提供单播分组传输服务。 按照不同服务范围的划分,双向隧道和远程加入可以看作是RBMoM 的两种特殊情况。当服务范围为0时,RBMoM等同于远程加入方法, 移动主机的MHA就是其外地代理;当服务范围为无穷大时,RBMoM等 同于双向隧道方式,移动主机的MHA就是其家乡代理,并且一直保持 不变。 相对于远程加入和双向隧道方法,RBMoM减少了组播转发树更新 的频率,降低了组播树的维护开销,使得组播转发路径相对较优。 现有技术二的缺点 RBMoM方法存在着MHA的切换问题以及切换丢包问题,此外对 服务范围的选择还存在缺陷,一旦服务范围选择不当,该方法就退回到 双向隧道或远程加入算法。 发明内容 本发明的目的在于避免上述现有技术中的不足之处而提供一种移动 组播路由优化方法,针对现有移动组播方法在采用隧道传输组播数据时 存在的路由不优化、组播隧道聚合等问题,本发明提出了一种移动组播 路由优化方法,用以改进现有移动组播方法中路由效率,提高组播路由 效率。 本发明的目的可以通过以下措施来达到: 一种移动组播路由优化方法,在家乡代理上实现组播隧道合并重构 组播路由优化算法,家乡代理至少需要构建和维护三个信息列表,即移 动节点列表,组成员列表和转发接口列表, 移动节点列表,家乡代理从移动IP的绑定缓存中获得移动节点信 息,以接口为索引,记录移动节点的家乡地址、转交地址、接入路由器 地址信息; 组成员列表,记录加入的组播组信息,包括组地址、组播模式、组 播范围; 转发接口列表,记录各个组的转发接口信息; 组播路由优化方法主要是采用隧道合并重建算法,具体步骤如下: (1)家乡代理初始化三个列表,家乡代理从绑定缓存获取移动节点 信息生成移动节点列表,从内核获取组播报告消息并生成组成员列表和 转发列表; (2)家乡代理侦听绑定更新消息并更新移动节点列表; (3)家乡代理检测移动节点列表中是否存在具有相同转交地址前缀 的移动节点,若存在则记录该移动节点的接入路由器地址并查询转发表, 若不存在,则转到步骤2; (4)家乡代理检测是否存在到移动节点当前接入路由器的隧道,若 存在则转到步骤6;否则,查询当前的转发列表; (5)家乡代理若查找到具有相同前缀的移动节点加入到了相同的组 播组,则构建家乡代理到当前接入路由器的隧道并更新转发列表,否则 转到步骤2; (6)家乡代理停止在移动节点和家乡网络之间的隧道上传输组播数 据。 家乡代理建立到非移动节点当前接入路由器的隧道,通过某种代理 选择方法选出某一个接入路由器来替代当前接入路由器的功能。 本发明相比现有技术具有如下优点:本发明可以有效的减少移动组 播方法在采用隧道传输组播数据时造成的路由效率低下问题,提高网络 资源的利用率,减少移动组播方法的传输开销。 附图说明 图1(a)组播隧道汇聚问题,移动节点具有不同家乡代理,每个移 动节点都和自己的家乡代理建立隧道传输组播数据; 图1(b)组播隧道汇聚问题,在多个移动节点和同一个家乡代理建 立多个隧道,传输相同的组播数据; 图2组播隧道合并重建算法。 具体实施方式 本发明方案主要通过在家乡代理上引入组播隧道合并重构组播路由 优化算法,可适用于移动IPv6组播和使用配置转交地址的移动IPv4组 播。 当移动组播方法采用双向隧道传输组播数据时,若多个加入同一个 组播组的移动节点移动到同一个外地网络,并接入到同一个接入路由器, 会出现隧道聚合问题。此时,家乡代理构建多个到移动节点的隧道发送 相同的组播数据,从而造成严重的开销,影响组播路由效率。根据家乡 代理的分布,移动组播中的隧道聚合问题可以分为两种情况,如图1所 示。在第一种情况下,移动节点具有不同家乡代理,每个移动都和自己 的家乡代理建立隧道传输组播数据,从而使得当前接入路由器需要向移 动节点转发多份相同的组播数据,降低了路由效率。在第二种情况下, 在多个移动节点和同一个家乡代理建立多个隧道,传输相同的组播数据, 使得从家乡代理到当前接入路由器上存在多份同一个组播组的数据,从 而增加了传输开销。 为了优化组播路由,本发明在家乡代理上实现了一种组播隧道合并重 构组播路由优化算法,解决隧道聚合问题。 为了实现本发明目的,家乡代理至少需要构建和维护三个信息列表即 移动节点列表,组成员列表和转发接口列表。 一是移动节点列表,家乡代理从移动IP的绑定缓存中获得移动节点 信息,以接口为索引,记录移动节点的家乡地址、转交地址、接入路由 器地址等信息。二是组成员列表,记录加入的组播组信息,包括组地址、 组播模式、组播范围等等。三是转发接口列表,记录各个组的转发接口 信息等等。 本发明的组播路由优化方法主要是采用隧道合并重建算法,具体步骤 如图2所示。 (1)家乡代理初始化三个列表。家乡代理从绑定缓存获取移动节点 信息生成移动节点列表,从内核获取组播报告消息并生成组成员列表和 转发列表; (2)家乡代理侦听绑定更新消息并更新移动节点列表; (3)家乡代理检测移动节点列表中是否存在具有相同转交地址前缀 的移动节点,若存在则记录该移动节点的接入路由器地址并查询转发表, 若不存在,则转到步骤2; (4)家乡代理检测是否存在到移动节点当前接入路由器的隧道,若 存在则转到步骤6;否则,查询当前的转发列表; (5)家乡代理若查找到具有相同前缀的移动节点加入到了相同的组 播组,则构建家乡代理到当前接入路由器的隧道并更新转发列表,否则 转到步骤2; (6)家乡代理停止在移动节点和家乡网络之间的隧道上传输组播数 据; 为了达到本发明目的,家乡代理也建立到非移动节点当前接入路由器 的隧道,通过某种代理选择方法选出某一个接入路由器来替代当前接入 路由器的功能。